<!doctype html>
<html>
	<head>
		<title>PREVIEW</title>
	</head>
	<body style="overscroll-behavior-x: none">
		<script>
			(function (global, factory) {
				typeof exports === "object" && typeof module !== "undefined"
					? (module.exports = factory(global))
					: typeof define === "function" && define.amd
						? define(factory)
						: factory(global);
			})(
				typeof self !== "undefined"
					? self
					: typeof window !== "undefined"
						? window
						: typeof global !== "undefined"
							? global
							: this,
				function (global) {
					"use strict";
					var _Base64 = global.Base64;
					var version = "2.4.5";
					var buffer;
					if (typeof module !== "undefined" && module.exports) {
						try {
							buffer = require("buffer").Buffer;
						} catch (err) {}
					}
					var b64chars =
						"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
					var b64tab = (function (bin) {
						var t = {};
						for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
						return t;
					})(b64chars);
					var fromCharCode = String.fromCharCode;
					var cb_utob = function (c) {
						if (c.length < 2) {
							var cc = c.charCodeAt(0);
							return cc < 128
								? c
								: cc < 2048
									? fromCharCode(192 | (cc >>> 6)) + fromCharCode(128 | (cc & 63))
									: fromCharCode(224 | ((cc >>> 12) & 15)) +
										fromCharCode(128 | ((cc >>> 6) & 63)) +
										fromCharCode(128 | (cc & 63));
						} else {
							var cc =
								65536 +
								(c.charCodeAt(0) - 55296) * 1024 +
								(c.charCodeAt(1) - 56320);
							return (
								fromCharCode(240 | ((cc >>> 18) & 7)) +
								fromCharCode(128 | ((cc >>> 12) & 63)) +
								fromCharCode(128 | ((cc >>> 6) & 63)) +
								fromCharCode(128 | (cc & 63))
							);
						}
					};
					var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
					var utob = function (u) {
						return u.replace(re_utob, cb_utob);
					};
					var cb_encode = function (ccc) {
						var padlen = [0, 2, 1][ccc.length % 3],
							ord =
								(ccc.charCodeAt(0) << 16) |
								((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |
								(ccc.length > 2 ? ccc.charCodeAt(2) : 0),
							chars = [
								b64chars.charAt(ord >>> 18),
								b64chars.charAt((ord >>> 12) & 63),
								padlen >= 2 ? "=" : b64chars.charAt((ord >>> 6) & 63),
								padlen >= 1 ? "=" : b64chars.charAt(ord & 63)
							];
						return chars.join("");
					};
					var btoa = global.btoa
						? function (b) {
								return global.btoa(b);
							}
						: function (b) {
								return b.replace(/[\s\S]{1,3}/g, cb_encode);
							};
					var _encode = buffer
						? buffer.from && Uint8Array && buffer.from !== Uint8Array.from
							? function (u) {
									return (
										u.constructor === buffer.constructor ? u : buffer.from(u)
									).toString("base64");
								}
							: function (u) {
									return (
										u.constructor === buffer.constructor ? u : new buffer(u)
									).toString("base64");
								}
						: function (u) {
								return btoa(utob(u));
							};
					var encode = function (u, urisafe) {
						return !urisafe
							? _encode(String(u))
							: _encode(String(u))
									.replace(/[+\/]/g, function (m0) {
										return m0 == "+" ? "-" : "_";
									})
									.replace(/=/g, "");
					};
					var encodeURI = function (u) {
						return encode(u, true);
					};
					var re_btou = new RegExp(
						["[À-ß][-¿]", "[à-ï][-¿]{2}", "[ð-÷][-¿]{3}"].join("|"),
						"g"
					);
					var cb_btou = function (cccc) {
						switch (cccc.length) {
							case 4:
								var cp =
										((7 & cccc.charCodeAt(0)) << 18) |
										((63 & cccc.charCodeAt(1)) << 12) |
										((63 & cccc.charCodeAt(2)) << 6) |
										(63 & cccc.charCodeAt(3)),
									offset = cp - 65536;
								return (
									fromCharCode((offset >>> 10) + 55296) +
									fromCharCode((offset & 1023) + 56320)
								);
							case 3:
								return fromCharCode(
									((15 & cccc.charCodeAt(0)) << 12) |
										((63 & cccc.charCodeAt(1)) << 6) |
										(63 & cccc.charCodeAt(2))
								);
							default:
								return fromCharCode(
									((31 & cccc.charCodeAt(0)) << 6) | (63 & cccc.charCodeAt(1))
								);
						}
					};
					var btou = function (b) {
						return b.replace(re_btou, cb_btou);
					};
					var cb_decode = function (cccc) {
						var len = cccc.length,
							padlen = len % 4,
							n =
								(len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) |
								(len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) |
								(len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) |
								(len > 3 ? b64tab[cccc.charAt(3)] : 0),
							chars = [
								fromCharCode(n >>> 16),
								fromCharCode((n >>> 8) & 255),
								fromCharCode(n & 255)
							];
						chars.length -= [0, 0, 2, 1][padlen];
						return chars.join("");
					};
					var atob = global.atob
						? function (a) {
								return global.atob(a);
							}
						: function (a) {
								return a.replace(/[\s\S]{1,4}/g, cb_decode);
							};
					var _decode = buffer
						? buffer.from && Uint8Array && buffer.from !== Uint8Array.from
							? function (a) {
									return (
										a.constructor === buffer.constructor
											? a
											: buffer.from(a, "base64")
									).toString();
								}
							: function (a) {
									return (
										a.constructor === buffer.constructor
											? a
											: new buffer(a, "base64")
									).toString();
								}
						: function (a) {
								return btou(atob(a));
							};
					var decode = function (a) {
						return _decode(
							String(a)
								.replace(/[-_]/g, function (m0) {
									return m0 == "-" ? "+" : "/";
								})
								.replace(/[^A-Za-z0-9\+\/]/g, "")
						);
					};
					var noConflict = function () {
						var Base64 = global.Base64;
						global.Base64 = _Base64;
						return Base64;
					};
					global.Base64 = {
						VERSION: version,
						atob: atob,
						btoa: btoa,
						fromBase64: decode,
						toBase64: encode,
						utob: utob,
						encode: encode,
						encodeURI: encodeURI,
						btou: btou,
						decode: decode,
						noConflict: noConflict
					};
					if (typeof Object.defineProperty === "function") {
						var noEnum = function (v) {
							return {
								value: v,
								enumerable: false,
								writable: true,
								configurable: true
							};
						};
						global.Base64.extendString = function () {
							Object.defineProperty(
								String.prototype,
								"fromBase64",
								noEnum(function () {
									return decode(this);
								})
							);
							Object.defineProperty(
								String.prototype,
								"toBase64",
								noEnum(function (urisafe) {
									return encode(this, urisafe);
								})
							);
							Object.defineProperty(
								String.prototype,
								"toBase64URI",
								noEnum(function () {
									return encode(this, true);
								})
							);
						};
					}
					if (global["Meteor"]) {
						Base64 = global.Base64;
					}
					if (typeof module !== "undefined" && module.exports) {
						module.exports.Base64 = global.Base64;
					} else if (typeof define === "function" && define.amd) {
						define([], function () {
							return global.Base64;
						});
					}
					return { Base64: global.Base64 };
				}
			);
		</script>
		<script>
			(function (r) {
				if (typeof exports === "object" && typeof module !== "undefined") {
					module.exports = r();
				} else if (typeof define === "function" && define.amd) {
					define([], r);
				} else {
					var e;
					if (typeof window !== "undefined") {
						e = window;
					} else if (typeof global !== "undefined") {
						e = global;
					} else if (typeof self !== "undefined") {
						e = self;
					} else {
						e = this;
					}
					e.base64js = r();
				}
			})(function () {
				var r, e, n;
				return (function () {
					function r(e, n, t) {
						function o(f, i) {
							if (!n[f]) {
								if (!e[f]) {
									var u = "function" == typeof require && require;
									if (!i && u) return u(f, !0);
									if (a) return a(f, !0);
									var v = new Error("Cannot find module '" + f + "'");
									throw ((v.code = "MODULE_NOT_FOUND"), v);
								}
								var d = (n[f] = { exports: {} });
								e[f][0].call(
									d.exports,
									function (r) {
										var n = e[f][1][r];
										return o(n || r);
									},
									d,
									d.exports,
									r,
									e,
									n,
									t
								);
							}
							return n[f].exports;
						}
						for (
							var a = "function" == typeof require && require, f = 0;
							f < t.length;
							f++
						)
							o(t[f]);
						return o;
					}
					return r;
				})()(
					{
						"/": [
							function (r, e, n) {
								"use strict";
								n.byteLength = d;
								n.toByteArray = h;
								n.fromByteArray = p;
								var t = [];
								var o = [];
								var a = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
								var f =
									"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
								for (var i = 0, u = f.length; i < u; ++i) {
									t[i] = f[i];
									o[f.charCodeAt(i)] = i;
								}
								o["-".charCodeAt(0)] = 62;
								o["_".charCodeAt(0)] = 63;
								function v(r) {
									var e = r.length;
									if (e % 4 > 0) {
										throw new Error(
											"Invalid string. Length must be a multiple of 4"
										);
									}
									var n = r.indexOf("=");
									if (n === -1) n = e;
									var t = n === e ? 0 : 4 - (n % 4);
									return [n, t];
								}
								function d(r) {
									var e = v(r);
									var n = e[0];
									var t = e[1];
									return ((n + t) * 3) / 4 - t;
								}
								function c(r, e, n) {
									return ((e + n) * 3) / 4 - n;
								}
								function h(r) {
									var e;
									var n = v(r);
									var t = n[0];
									var f = n[1];
									var i = new a(c(r, t, f));
									var u = 0;
									var d = f > 0 ? t - 4 : t;
									for (var h = 0; h < d; h += 4) {
										e =
											(o[r.charCodeAt(h)] << 18) |
											(o[r.charCodeAt(h + 1)] << 12) |
											(o[r.charCodeAt(h + 2)] << 6) |
											o[r.charCodeAt(h + 3)];
										i[u++] = (e >> 16) & 255;
										i[u++] = (e >> 8) & 255;
										i[u++] = e & 255;
									}
									if (f === 2) {
										e =
											(o[r.charCodeAt(h)] << 2) |
											(o[r.charCodeAt(h + 1)] >> 4);
										i[u++] = e & 255;
									}
									if (f === 1) {
										e =
											(o[r.charCodeAt(h)] << 10) |
											(o[r.charCodeAt(h + 1)] << 4) |
											(o[r.charCodeAt(h + 2)] >> 2);
										i[u++] = (e >> 8) & 255;
										i[u++] = e & 255;
									}
									return i;
								}
								function s(r) {
									return (
										t[(r >> 18) & 63] +
										t[(r >> 12) & 63] +
										t[(r >> 6) & 63] +
										t[r & 63]
									);
								}
								function l(r, e, n) {
									var t;
									var o = [];
									for (var a = e; a < n; a += 3) {
										t =
											((r[a] << 16) & 16711680) +
											((r[a + 1] << 8) & 65280) +
											(r[a + 2] & 255);
										o.push(s(t));
									}
									return o.join("");
								}
								function p(r) {
									var e;
									var n = r.length;
									var o = n % 3;
									var a = [];
									var f = 16383;
									for (var i = 0, u = n - o; i < u; i += f) {
										a.push(l(r, i, i + f > u ? u : i + f));
									}
									if (o === 1) {
										e = r[n - 1];
										a.push(t[e >> 2] + t[(e << 4) & 63] + "==");
									} else if (o === 2) {
										e = (r[n - 2] << 8) + r[n - 1];
										a.push(
											t[e >> 10] + t[(e >> 4) & 63] + t[(e << 2) & 63] + "="
										);
									}
									return a.join("");
								}
							},
							{}
						]
					},
					{},
					[]
				)("/");
			});
		</script>
		<script>
			window.onload = function () {
				var base64Text = location.hash.substring(1);
				var charset;
				if (
					base64Text &&
					/\?\?\?WHISTLE_PREVIEW_CHARSET=([A-Z\d_-]+)\?\?\?/.test(location.search)
				) {
					charset = RegExp.$1;
				}
				if (!charset) {
					return;
				}
				if (base64Text.indexOf("data:") === 0) {
					var style =
						"display: -webkit-box; -webkit-box-align: center; -webkit-align-items: center;" +
						"-webkit-box-pack: center; -webkit-justify-content: center; margin: 0px; background: #0e0e0e;";
					document.write(
						'<html><head></head><body style="' +
							style +
							'">' +
							'<img src="' +
							base64Text +
							'"></body></html>'
					);
					return;
				}
				var pushState = history.pushState;
				var replaceState = history.replaceState;
				if (typeof pushState === "function") {
					try {
						history.pushState = history.replaceState = function () {};
					} catch (e) {}
				}
				setTimeout(function () {
					try {
						history.pushState = pushState;
						history.replaceState = replaceState;
					} catch (e) {}
				}, 6000);
				try {
					if (charset.replace("-", "") === "UTF8") {
						document.write(Base64.decode(base64Text));
						charset = null;
					}
				} catch (e) {}
				if (charset) {
					var decoder = new TextDecoder(charset);
					var bytes = base64js.toByteArray(base64Text);
					document.write(decoder.decode(new window.Uint8Array(bytes)));
				}
				window.Base64 = null;
				window.base64js = null;
			};
		</script>
	</body>
</html>
